home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4 / Atari Forever 4.iso / PD_THEMA / CLI / COMMAND.141 / COMMAND.TXT < prev   
Encoding:
Text File  |  1998-03-14  |  24.7 KB  |  751 lines

  1.  
  2.  
  3.              Beschreibung zu COMMAND.PRG (V1.04)
  4.  
  5.              -----------------------------------
  6.  
  7.  
  8.  
  9.  
  10.  
  11. Allgemeine Hinweise
  12.  
  13. -------------------
  14.  
  15.  
  16.  
  17.   die Eingabe eines Befehls kann mit Hilfe der Cursortasten, der DELETE-
  18.  
  19.   Taste, der ESC-Taste und der BACKSPACE-Taste korrigiert werden!
  20.  
  21.   Ab Version 1.04 kann mit 'CTRL' '<-' zum Anfang der Eingabe gesprungen
  22.  
  23.   werden, analog funktioniert 'CTRL' '->', nur gehts hier ans Zeilenende.
  24.  
  25.  
  26.  
  27.   Alle Befehle müßen kleingeschrieben werden. Es kann nicht dafür garantiert
  28.  
  29.   werden, daß alle Eingabefehler ohne größere Verluste von Sourcefiles o.ä.
  30.  
  31.   abgefangen werden (selber probieren).
  32.  
  33.   Prinzipiell wird immer von der Directory ausgegangen, in der man sich ge-
  34.  
  35.   rade befindet. Bezugnehmen auf andere Directories bzw. Laufwerke kann man
  36.  
  37.   eigentlich nur mit 'cp' und 'dir'.
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. Allgemeine Befehle
  46.  
  47. ------------------
  48.  
  49.  
  50.  
  51.   Befehl:            Beschreibung:
  52.  
  53.   -------            -------------
  54.  
  55.  
  56.  
  57. mkdir <dirname>         Es wird ein neuer Ordner erzeugt.
  58.  
  59.                 Bsp.: mkdir neu_ord
  60.  
  61.                 erzeugt den Ordner 'neu_ord'.
  62.  
  63.  
  64.  
  65.  
  66.  
  67. rmdir <dirname>         Löscht einen leeren (!) Ordner.
  68.  
  69.                 Bsp.: rmdir quatsch
  70.  
  71.                 löscht den Ordner 'quatsch'.
  72.  
  73.  
  74.  
  75.  
  76.  
  77. rm <filename(n)>        Löschen von Files.
  78.  
  79.                 Bsp.: rm xy.dat
  80.  
  81.                 löscht den File 'xy.dat'.
  82.  
  83.                 Bsp.: rm *.prg
  84.  
  85.                 löscht alle Files der Gattung '.prg'.
  86.  
  87.                 Bsp.: rm Afile Bfile
  88.  
  89.                 löscht 'Afile' und 'Bfile'.
  90.  
  91.                 Bsp.: rm c:Cfile
  92.  
  93.                 löscht auf Laufwerk 'C' 'Cfile'
  94.  
  95.  
  96.  
  97.  
  98.  
  99. cp <fileA> <fileB>        Kopieren von Files.
  100.  
  101.                 Bsp.: cp Afile Bfile
  102.  
  103.                 kopiert 'Afile' nach 'Bfile'
  104.  
  105.                 Bsp.: cp *.prg c:*
  106.  
  107.                 kopiert alle '.prg'-Files auf Laufwerk 'C'
  108.  
  109.                 unter gleichem Namen.
  110.  
  111.                 Da es mit diesem Befehl immer wieder Probleme
  112.  
  113.                 gab, ist ein gesundes Maß an Vorsicht durch-
  114.  
  115.                 aus angebracht!
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123. mv <altname> <neuname>        Umbenennen von einem File.
  124.  
  125.                 Bsp. mv alt.dat neu.dat
  126.  
  127.                 aus dem Filenamen 'alt.dat' wird 'neu.dat'.
  128.  
  129.  
  130.  
  131.  
  132.  
  133. cmp <fileA> <fileB>        Vergleich zweier Files.
  134.  
  135.                 Bsp.: cmp erster zweiter
  136.  
  137.                 vergleicht die beiden Files 'erster' und
  138.  
  139.                 'zweiter'. Unterscheiden sich die beiden Files,
  140.  
  141.                 wird eine entsprechende Meldung ausgegeben.
  142.  
  143.                 Sind die beiden Files gleich, wird nichts
  144.  
  145.                 zurückgemeldet!
  146.  
  147.  
  148.  
  149.  
  150.  
  151. compress <file>         Komprimiert einen ASCII-File (!). Der Ausgabe-
  152.  
  153.                 file besitzt die Extension '.CPR'.
  154.  
  155.  
  156.  
  157.  
  158.  
  159. expand <file>            Expandiert einen File, der durch 'compress'
  160.  
  161.                 komprimiert worden ist. Extension des Ausgabe-
  162.  
  163.                 files ist '.EXP'.
  164.  
  165.  
  166.  
  167.  
  168.  
  169. more <filename(n)>        Ausgeben der Fileinhalte auf Screen.
  170.  
  171.                 Bsp.: more info.dat
  172.  
  173.                 gibt den File 'info.dat' aus.
  174.  
  175.                 Ein Betätigen von '^Z' hat den Abbruch
  176.  
  177.                 der Auflistung zur Folge.
  178.  
  179.                 Ein analoges Verhalten findet sich bei 'od'.
  180.  
  181.                 Ein Drücken von RETURN nach '[MORE]' ver-
  182.  
  183.                 ursacht ein zeilenweises Weitergehen, jede
  184.  
  185.                 andere Taste, außer '^Z', ein seitenweises.
  186.  
  187.                 Wird "während" der Zeilenausgabe '^C' ge-
  188.  
  189.                 drückt, erfolgt ein sofortiges Verlassen
  190.  
  191.                 des Kommandointerpreters!
  192.  
  193.  
  194.  
  195.  
  196.  
  197. head <filename(n)>        Ausgeben der ersten fünf Zeilen eines Files.
  198.  
  199.                 Bsp.: head info.dat
  200.  
  201.                 gibt die ersten fünf Zeilen von 'info.dat'
  202.  
  203.                 aus.
  204.  
  205.  
  206.  
  207.  
  208.  
  209. od <filename(n)>        Ausgeben des Hexdumps eines Files.
  210.  
  211.                 Bsp.: od dump.dat
  212.  
  213.                 der File 'dump.dat' wird in hexadezimaler
  214.  
  215.                 Form ausgegeben.
  216.  
  217.  
  218.  
  219.  
  220.  
  221. string <file> <string>        Suchen nach einem String in einem File.
  222.  
  223.                 Bsp.: string *.* Suchstring
  224.  
  225.                 alle  Files  im  aktuellen Ordner werden nach
  226.  
  227.                 dem String 'Suchstring' durchsucht.
  228.  
  229.                 Bei einem Auffinden des Strings erfolgt  eine
  230.  
  231.                 Meldung.
  232.  
  233.  
  234.  
  235.  
  236.  
  237. crypt <keyA> <keyB> <fileA> <fileB>
  238.  
  239.                 Ver-/Entschlüsseln von Dateien. <keyA/B> sind
  240.  
  241.                 Zahlen,  die   zum   Verschlüsseln   und  zum
  242.  
  243.                 Entschlüsseln  benötigt werden. Ein File kann
  244.  
  245.                 nur  durch  die  Zahlen  wieder entschlüsselt
  246.  
  247.                 werden, die  auch  zum Verschlüsseln  benutzt
  248.  
  249.                 worden    sind!  <fileA>    ist   der  Quellfile,
  250.  
  251.                 <fileB> der Zielfile.
  252.  
  253.                 Wie sicher die Verschlüsselung ist, mag jeder
  254.  
  255.                 für  sich   selbst   entscheiden. Die  beiden
  256.  
  257.                 Schlüssel sind auf jeden Fall vom Typ 'long',
  258.  
  259.                 dadurch  ergeben sich  schon  eine große Zahl
  260.  
  261.                 von  Verschlüsselungsmöglichkeiten. Es können
  262.  
  263.                 übrigens auch negative Zahlen benutzt werden!
  264.  
  265.                 ACHTUNG! Die Verschlüsselung erfolgt ab V1.02
  266.  
  267.                 in etwas  abgeänderter Form. Man kann deshalb
  268.  
  269.                 alte  verschlüsselte  Files  nicht  mehr  mit
  270.  
  271.                 diesem    Befehl    entschlüsseln  und umgekehrt.
  272.  
  273.  
  274.  
  275.  
  276.  
  277. lp <filename(n)>        Ausgeben von Files auf den Drucker.
  278.  
  279.                 Bsp. lp druck.dat
  280.  
  281.                 gibt den File 'druck.dat' auf den Drucker
  282.  
  283.                 aus (Centronics-Schnittstelle).
  284.  
  285.  
  286.  
  287.  
  288.  
  289. setlp <wert1> .. <wertN>    Diese Steuercodes werden an den Drucker vor
  290.  
  291.                 dem Start des Ausdrucks geschickt. Default
  292.  
  293.                 ist das Senden von keinen Steuerzeichen.
  294.  
  295.                 Soll ein vorhergehender Steuercode ungültig
  296.  
  297.                 gemacht werden, muß man einfach 'setlp -1'
  298.  
  299.                 eingeben.
  300.  
  301.                 <wert1> .. <wertN> bezeichnet Dezimalzahlen.
  302.  
  303.                 Bsp 1:
  304.  
  305.                     setlp 27 48
  306.  
  307.                 setzt einen NEC-Printer auf 8 lpi.
  308.  
  309.  
  310.  
  311.  
  312.  
  313. resetlp <wert1> .. <wertN>    Analog zu 'setlp', nur wird dieser Steuercode
  314.  
  315.                 nach Abschluß des Druckvorgangs an den Drucker
  316.  
  317.                 geschickt.
  318.  
  319.  
  320.  
  321.  
  322.  
  323. rstab                Ist die TAB-Expandierung eingeschaltet
  324.  
  325.                 (default), sendet der Befehl 'lp' für
  326.  
  327.                 jedes TAB-Zeichen die entsprechende An-
  328.  
  329.                 zahl BLANKS, andernfalls das TAB-Zeichen.
  330.  
  331.                 Dieser Befehl dient zum Ein-/ Ausschalten
  332.  
  333.                 dieser Option.
  334.  
  335.  
  336.  
  337.  
  338.  
  339. settab <wert>            Einstellen des Tabulators für Ausdrucke.
  340.  
  341.                 Defaultmäßig ist 8 eingestellt. <wert>
  342.  
  343.                 darf nicht unter 2 liegen!
  344.  
  345.  
  346.  
  347.  
  348.  
  349. cd <directory>            Wechseln eines Ordners
  350.  
  351.                 Bsp.: cd bingo\bingo1
  352.  
  353.                 wechselt zum Subdirectory 'bingo\bingo1'
  354.  
  355.                 Bsp.: cd c:ordner1
  356.  
  357.                 wechselt zum Subdirectory 'ordner1' auf
  358.  
  359.                 Laufwerk 'C'.
  360.  
  361.  
  362.  
  363.  
  364.  
  365. pwd                Zeigt den aktuellen Directorypfad auf
  366.  
  367.  
  368.  
  369.  
  370.  
  371. dir <file>            Aufzeigen der Files innerhalb eines Ordners
  372.  
  373.                 Bsp.: dir
  374.  
  375.                 auflisten aller Files.
  376.  
  377.                 Bsp.: dir *.ttp
  378.  
  379.                 nur '.ttp'-Files werden angezeigt.
  380.  
  381.  
  382.  
  383.  
  384.  
  385. ls <file>            Kurzausgabe des Directoryinhalts
  386.  
  387.  
  388.  
  389.  
  390.  
  391. <a..z>:             Neusetzen des aktuellen Laufwerks
  392.  
  393.                 Bsp.: c:
  394.  
  395.                 Laufwerk 'C' wird zum aktuellen Laufwerk.
  396.  
  397.  
  398.  
  399.  
  400.  
  401. defkey <1..20> <string>     Belegt Funktionstaste mit einem String, der
  402.  
  403.                 bei drücken der Taste ausgeführt wird.
  404.  
  405.                 Bsp.: defkey 11 time
  406.  
  407.                 ein Drücken von <SHIFT> <F1> zeigt nun immer
  408.  
  409.                 an, was die Stunde geschlagen hat.
  410.  
  411.  
  412.  
  413.  
  414.  
  415. keys                Gibt die Funktionstastenbelegung aus.
  416.  
  417.  
  418.  
  419.  
  420.  
  421. time <hh:mm>            Ohne Argumentangabe wird die Uhrzeit ausge-
  422.  
  423.                 geben, sonst erfolgt ein setzen der Uhrzeit.
  424.  
  425.                 Bsp.: time 1:8
  426.  
  427.                 setzt die Uhr auf 1 Uhr 8 Minuten.
  428.  
  429.  
  430.  
  431.  
  432.  
  433. date <dd.mm.yy>         Ohne Argumentangabe erfolgt Ausgabe des
  434.  
  435.                 Datums, sonst ein setzen des Datums.
  436.  
  437.                 Bsp.: date
  438.  
  439.                 es wird das Datum ausgegeben.
  440.  
  441.  
  442.  
  443.  
  444.  
  445. echo <string>            Ausgabe des angegebenen Strings auf Screen.
  446.  
  447.                 Bsp.: echo Hallo Welt!
  448.  
  449.                 es wird 'Hallo Welt!' ausgegeben. Sinnvoll
  450.  
  451.                 ist dieser Befehl in Batchfiles.
  452.  
  453.  
  454.  
  455.  
  456.  
  457. wc <fileA> <fileB> ...        Zählt in den Files die vorkommenden Zeilen,
  458.  
  459.                 Zahlen und Zeichen.
  460.  
  461.  
  462.  
  463.  
  464.  
  465. find <file>            Sucht im 'kompletten' Filesystem nach dem an-
  466.  
  467.                 gegebenen File. Wird dieser gefunden, erfolgt
  468.  
  469.                 eine Ausgabe mit der kompletten Pfadangabe.
  470.  
  471.  
  472.  
  473.  
  474.  
  475. df                Ausgabe des freien Speicherplatzes auf dem
  476.  
  477.                 aktuellen Laufwerk.
  478.  
  479.  
  480.  
  481.  
  482.  
  483. device                Gibt die angeschlossenen Laufwerke an.
  484.  
  485.  
  486.  
  487.  
  488.  
  489. wait                Wartet auf Drücken einer Taste. Dieser Befehl
  490.  
  491.                 ist manchmal in Batchfiles sinnvoll, um
  492.  
  493.                 das Abarbeiten anzuhalten.
  494.  
  495.  
  496.  
  497.  
  498.  
  499. lock                Dieser Befehl dient zum Sperren des Computers.
  500.  
  501.                 Nach Eingabe von 'lock' wird man aufgefordert
  502.  
  503.                 zweimal ein  Password einzugeben. Der Rechner
  504.  
  505.                 kann dann erst    nach  erneuter Eingabe dieses
  506.  
  507.                 Wortes    weiterbenutzt  werden. Dieser  Schutz
  508.  
  509.                 kann  natürlich  durch    Betätigung  von RESET
  510.  
  511.                 bzw. der POWER-Taste 'geknackt' werden!
  512.  
  513.  
  514.  
  515.  
  516.  
  517. exit                Verlassen von COMMAND.PRG. Durch ^C  wird das
  518.  
  519.                 gleiche erreicht.
  520.  
  521.  
  522.  
  523.  
  524.  
  525. cls                Löschen des Bildschirms
  526.  
  527.  
  528.  
  529.  
  530.  
  531. inverse             Invertiert Bildschirmdarstellung
  532.  
  533.  
  534.  
  535.  
  536.  
  537. srhist                Schaltet Historyeintragungen ein/aus
  538.  
  539.  
  540.  
  541.  
  542.  
  543. flags                Zeigt Stellung diverser Flags
  544.  
  545.  
  546.  
  547.  
  548.  
  549. free                Gibt verfügbaren Speicherplatz aus
  550.  
  551.  
  552.  
  553.  
  554.  
  555. mouseon             Einschalten des Mauszeigers (wozu auch immer)
  556.  
  557.  
  558.  
  559.  
  560.  
  561. mouseoff            Ausschalten des Mauszeigers
  562.  
  563.  
  564.  
  565.  
  566.  
  567. crson                Einschalten des Cursors
  568.  
  569.  
  570.  
  571.  
  572.  
  573. crsoff                Ausschalten des Cursors
  574.  
  575.  
  576.  
  577.  
  578.  
  579. help                Gibt eine Kommandoliste aus
  580.  
  581.  
  582.  
  583.  
  584.  
  585. bell                Einmal Klingeln
  586.  
  587.  
  588.  
  589.  
  590.  
  591. lfcr <fileA> <fileB>        Umwandeln eines ASCII-Files (fileA), wie er
  592.  
  593.                 von MICROEMACS erzeugt wird, in einen File,
  594.  
  595.                 wie er von anderen Editoren gebraucht wird
  596.  
  597.                 (fileB). 
  598.  
  599.                 Wird wohl nicht allzuhäufig benutzt werden,
  600.  
  601.                 ich war aber einfach zu faul, den Befehl 
  602.  
  603.                 wieder rauszuschmeißen!
  604.  
  605.  
  606.  
  607.  
  608.  
  609. <integerzahl>            Darstellung einer Integerzahl in hexadezimaler
  610.  
  611.                 und oktaler Schreibweise.
  612.  
  613.                 Bsp.: 22
  614.  
  615.                 Ausgabe dieser Zahl hexadezimal und oktal.
  616.  
  617.  
  618.  
  619.  
  620.  
  621. $<hexzahl>            Darstellung dieser Zahl dezimal und oktal.
  622.  
  623.  
  624.  
  625.  
  626.  
  627. \<oktalzahl>            Darstellung dieser Zahl hexadezimal und
  628.  
  629.                 dezimal.
  630.  
  631.  
  632.  
  633.  
  634.  
  635. COMMAND.PRG besitzt die Möglichkeit, andere Programme aufrufen zu können. Dazu
  636.  
  637. muß lediglich der Filenamen und ggf. die erforderlichen Argumente eingegeben
  638.  
  639. werden. Ist dieses Programm (z.B. Compiler,Editor...) mit der Abarbeitung
  640.  
  641. fertig, wird automatisch zu COMMAND.PRG zurückgekehrt.
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649. ALIAS-Einrichtung
  650.  
  651. -----------------
  652.  
  653. Der Kommandointerpreter bietet dem Benutzer die Möglichkeit, bestimmte Befehle
  654.  
  655. umzubenennen. Wird zum Beispiel öfters ein bestimmtes Programm aufgerufen,
  656.  
  657. kann dieser Aufruf umbenannt werden. Sei das Programm 'xcompiler.prg' immer
  658.  
  659. wieder aufzurufen, kann dieses Kommando z.B. in 'cc' umbenannt werden.
  660.  
  661. Wird ein Editor öfters zum editieren eines bestimmten Files aufgerufen, kann
  662.  
  663. der normale Aufruf 'editor.prg file.c' einfach in einen anderen kürzeren,
  664.  
  665. z.B. 'edi', umbenannt werden.
  666.  
  667. Sämtliche Umbenennungen können im File 'alias.dat' abgelegt werden. Dieser
  668.  
  669. File wird zum Programmbeginn von COMMAND.PRG eingelesen (soweit vorhanden),
  670.  
  671. die alternativen Kommandonamen können also sofort genutzt werden und müssen
  672.  
  673. nicht zu jeder Sitzung neu eingegeben werden.
  674.  
  675.  
  676.  
  677. alias                Aufzeigen aller aktuell gültigen Umbenennung-
  678.  
  679.                 en.
  680.  
  681.  
  682.  
  683.  
  684.  
  685. getalias            Einlesen des Files 'alias.dat'.
  686.  
  687.  
  688.  
  689.  
  690.  
  691. savealias            Abspeichern der gültigen Umbenennungen in
  692.  
  693.                 'alias.dat'.
  694.  
  695.  
  696.  
  697.  
  698.  
  699. newalias <neu> <alt>        Umbenennen von 'alt' in 'neu'.
  700.  
  701.                 Bsp. newalias cc mmcc.ttp
  702.  
  703.                 das alte Kommando 'mmcc.ttp' kann nun auch
  704.  
  705.                 durch 'cc' aufgerufen werden.
  706.  
  707.  
  708.  
  709.  
  710.  
  711. delalias <name>         Löschen eines Alias-Eintrages (<name>).
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721. History-Einrichtung
  722.  
  723. -------------------
  724.  
  725.  
  726.  
  727. Ein weiteres Bonbon des Interpreters ist die Möglichkeit, bereits eingegebene
  728.  
  729. Befehle auf einfache Weise erneut aufzurufen. Dies ist allerdings auf die
  730.  
  731. letzten zwanzig Kommandos beschränkt. UNIX-Kennern dürfte diese Einrichtung
  732.  
  733. und ihre Vorzüge wohl hinlänglich bekannt sein.
  734.  
  735. Ein einfaches Beispiel soll die praktische Anwendung dieser Möglichkeit auf-
  736.  
  737. zeigen. Zum Erstellen eines Programms in C, PASCAL u.s.w. sind immer die
  738.  
  739. gleichen Schritte nötig: Editieren->Compilieren->Linken->Probelauf. Meist
  740.  
  741. erfolgt zwischen Compilieren und Linken noch eine Kurzvisite beim Editor,
  742.  
  743. weil halt doch noch ein Syntaxfehler drin ist.
  744.  
  745.  
  746.  
  747. Die Kommandos seien          ihre Bedeutung:
  748.  
  749. folgende:
  750.  
  751.  
  752.  
  753. 77>ed bsp.pas              Aufruf des Editors zum Editieren von bsp.pas
  754.  
  755. 78>pas bsp.pas              Aufruf des Compilers zur Objektfilerzeugung
  756.  
  757.  
  758.  
  759. Ist jetzt ein Fehler aufgetreten, muß zum Editieren zurückgegangen werden.
  760.  
  761. Also
  762.  
  763.  
  764.  
  765. 79>ed bsp.pas
  766.  
  767.  
  768.  
  769. eingeben u.s.w.
  770.  
  771.  
  772.  
  773. Durch die Historyeinrichtung reicht es, wenn der Benutzer einfach '!77'
  774.  
  775. eingibt, es wird dann das Kommando 77 ausgeführt. '77>' stellt übrigens die
  776.  
  777. Aufforderung des Interpreters dar, Kommando 77 einzugeben. Es kann aber
  778.  
  779. nicht nur über Kommandonummern auf zurückliegende Eingaben Bezug genommen
  780.  
  781. werden, die Eingabe '!e' hätte auch zum Wiederaufruf von Kommando 77 ge-
  782.  
  783. führt, d.h. es wird nach dem letzten Kommando gesucht, daß mit 'e' beginnt und
  784.  
  785. dieses dann ausgeführt. Diese Eingabe von Anfangsbuchstaben ist nicht auf die
  786.  
  787. Länge 1 begrenzt! Hat ein Benutzer kürzlich einen Kopierbefehl (cp A B), einen
  788.  
  789. Vergleichsbefehl (cmp x y) und einen Befehl zum Wechseln des Ordners (cd \D)
  790.  
  791. gegeben, kann durch Eingabe zweier Zeichen immer eindeutig auf eines dieser
  792.  
  793. Kommandos Bezug genommen werden (z.B. '!cp' für den Kopierbefehl).
  794.  
  795. Wohlgemerkt, die Benutzung von History ist auf die letzten fünfzig Eingaben
  796.  
  797. beschränkt!.
  798.  
  799.  
  800.  
  801. Ab Version 1.01 bietet die Historyeinrichtung weitere Möglichkeiten. Alte
  802.  
  803. Befehle können durch Benutzung der CURSOR-UP-Taste angewählt werden. Ein
  804.  
  805. Vorwärtsblättern ist durch CURSOR-DOWN gegeben. Die Befehle können editiert
  806.  
  807. werden und kommen erst durch drücken von RETURN zur Ausführung!
  808.  
  809.  
  810.  
  811. h                Ausgabe der letzten fünfzig Kommandos.
  812.  
  813.  
  814.  
  815.  
  816.  
  817. !<nr>                Wiederaufruf des Kommandos mit der Nummer
  818.  
  819.                 <nr>.
  820.  
  821.  
  822.  
  823.  
  824.  
  825. !<string>            Wiederaufruf des Kommandos, daß mit dem
  826.  
  827.                 angegebenen <string> beginnt.
  828.  
  829.  
  830.  
  831.  
  832.  
  833. !!                Wiederaufruf des letzten Kommandos.
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843. Batch-Processing
  844.  
  845. ----------------
  846.  
  847.  
  848.  
  849. Kommen wir nun zur letzten aber nicht unbedeutendsten Fähigkeit des Kommando-
  850.  
  851. Interpreters, dem Abarbeiten von Batchfiles.
  852.  
  853. Leider wird diese Möglichkeit auch auf Systemen, die dafür eingerichtet sind
  854.  
  855. selten genutzt. Lieber gibt ein Benutzer immer die gleiche Befehlsfolge ein,
  856.  
  857. als sich einen Batchfile, der diese Folge enthält, zu erstellen und diesen
  858.  
  859. dann einfach ablaufen zu lassen.
  860.  
  861. In einem Batchfile kann prinzipiell jedes der bis jetzt besprochenen Kommandos
  862.  
  863. stehen. Es gibt noch eine Palette weiterer Kommandos, die den Ablauf inner-
  864.  
  865. halb eines Batchfiles regeln (z.B. Sprungmarken).
  866.  
  867. Wird in einem Batchfile viel gesprungen, bzw. finden Schleifendurchläufe
  868.  
  869. statt, sollte der File in einer RAMDisk abgelegt und gestartet werden, daß
  870.  
  871. bringt einen ziemlichen Zeitgewinn und nützt die Floppy nicht ab.
  872.  
  873.  
  874.  
  875. batch <file> <arg0> ... <arg9>    Aufruf des Batchfiles <file>. <arg0> bis
  876.  
  877.                 <arg9> entsprechen Strings. Innerhalb eines
  878.  
  879.                 Batchfiles können Platzhalter gesetzt werden
  880.  
  881.                 ($0 bis $9). Diese werden durch die Strings
  882.  
  883.                 ersetzt. Dadurch wird erreicht, daß z.B. ein
  884.  
  885.                 Batchfile für Compilierung und Linken eines
  886.  
  887.                 Files mit unterschiedlichen Sourcefilenamen
  888.  
  889.                 aufgerufen werden kann!
  890.  
  891.  
  892.  
  893.  
  894.  
  895. @<file> <arg0> ... <arg9>    entspricht 'batch'                
  896.  
  897.  
  898.  
  899.  
  900.  
  901. restart             Befehl innerhalb eines Batchfiles zum
  902.  
  903.                 Neustart des Files.
  904.  
  905.  
  906.  
  907.  
  908.  
  909. stop                Stoppen eines Batchfiles.
  910.  
  911.  
  912.  
  913.  
  914.  
  915. ?stop                bedingtes Stoppen eines Batchfiles (der Be-
  916.  
  917.                 nutzer wird gefragt).
  918.  
  919.  
  920.  
  921.  
  922.  
  923. text                Jedes Kommando innerhalb eines Batchfiles
  924.  
  925.                 soll vor Ausführung auf den Bildschirm aus-
  926.  
  927.                 gegeben werden (default-Einstellung).
  928.  
  929.  
  930.  
  931.  
  932.  
  933. notext                Abschalten der Kommandoausgabe.
  934.  
  935.  
  936.  
  937.  
  938.  
  939. errorbreak            BATCH-Kommandos im Falle eines Fehlers
  940.  
  941.                 abbrechen / nicht abbrechen (es wird hin-
  942.  
  943.                 und hergeschaltet).
  944.  
  945.  
  946.  
  947.  
  948.  
  949. lbl <marke>            Sprungmarke in einem Batchfile. Es darf
  950.  
  951.                 kein weiterer Befehl in einer lbl-Zeile
  952.  
  953.                 stehen!
  954.  
  955.                 Bsp.: lbl LOOP
  956.  
  957.                 festlegen des Labels 'LOOP'
  958.  
  959.  
  960.  
  961.  
  962.  
  963. goto <marke>            Sprung zur angegebenen Marke.
  964.  
  965.                 Bsp.: goto LOOP
  966.  
  967.                 würde zum oben angegeben Label springen.
  968.  
  969.  
  970.  
  971.  
  972.  
  973. exist <file> <label>        ist <file> vorhanden wird zu <label> ge-
  974.  
  975.                 sprungen.
  976.  
  977.  
  978.  
  979.  
  980.  
  981. size0 <file> <label>        ist <file> nicht da oder Größe gleich Null
  982.  
  983.                 wird zu <label> gesprungen.
  984.  
  985.  
  986.  
  987.  
  988.  
  989. ;<Kommentar>            Kommentarzeile, die überlesen wird.
  990.  
  991.                 ';' kann an jeder beliebigen Stelle der
  992.  
  993.                 Eingabe stehen. Alle nachfolgenden
  994.  
  995.                 Zeichen werden ignoriert.
  996.  
  997.                 Bsp.: dir ; no comment
  998.  
  999.                 verhält sich wie 'dir'.
  1000.  
  1001.                 ';' ermöglicht eine recht gute Doku-
  1002.  
  1003.                 mentierung von Batchfiles.
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009. status                Ausgabe einer Variablen, die zur Steuerung
  1010.  
  1011.                 innerhalb des Batchfiles benutzt wird.
  1012.  
  1013.                 Sie wird vor jedem Ablauf eines Batchfiles
  1014.  
  1015.                 auf Null gesetzt. Werden innerhalb des
  1016.  
  1017.                 Files andere Programme (z.B. Compiler) ge-
  1018.  
  1019.                 startet, so wird deren Rückgabewert in
  1020.  
  1021.                 'status' abgelegt. Ein fehlerhafter Compiler-
  1022.  
  1023.                 lauf kann also zum Sprung zu einer bestimmten
  1024.  
  1025.                 Marke genutzt werde. Der Benutzer muß aller-
  1026.  
  1027.                 dings die Rückgabewerte der Programme und
  1028.  
  1029.                 ihre Bedeutung kennen. Wird nur das Kommando
  1030.  
  1031.                 'status' gegeben, wird der Wert dieser
  1032.  
  1033.                 Variablen angezeigt. Damit kann man also
  1034.  
  1035.                 Programmrückgabewerte bestimmen.
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041. <> <zahl>            Ist 'status' ungleich einer bestimmten Zahl,
  1042.  
  1043.                 wird der Batchvorgang abgebrochen (z.B.
  1044.  
  1045.                 nach einem fehlerhaften Compiliervorgang).
  1046.  
  1047.                 Bsp.: <> 0
  1048.  
  1049.                 ist 'status' <> 0, dann brich ab.
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055. < <zahl>            Analog zu '<>' nur erfolgt hier der Abbruch,
  1056.  
  1057.                 wenn 'status' < <zahl>.
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063. > <zahl>            Analog, nur größer diesmal.
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069. == <zahl>            Diesmal Abbruch, wenn gleich <zahl>.
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075. ?status= <zahl> <label>     Diese drei Befehle dienen zur Steuerung des
  1076.  
  1077. ?status> <zahl> <label>     Batchfiles, wenn bestimmte Ereignisse ein-
  1078.  
  1079. ?status< <zahl> <label>     getreten sind. Ist 'status' gleich, größer
  1080.  
  1081.                 oder kleiner einer bestimmten Zahl, soll ab
  1082.  
  1083.                 einem bestimmten Label innerhalb des Batch-
  1084.  
  1085.                 files weitergemacht werden.
  1086.  
  1087.                 Bsp.: ?status> 0 editor
  1088.  
  1089.                 ist 'status' größer Null springe zum Label
  1090.  
  1091.                 'editor'.
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097. counter             Auf die Variable 'status' kann der Benutzer
  1098.  
  1099.                 keinen direkten Einfluß nehmen. In vielen
  1100.  
  1101.                 Fällen, z.B. wenn Schleifendurchgänge ge-
  1102.  
  1103.                 braucht werden, ist jedoch ein kontrollier-
  1104.  
  1105.                 barerer Ablauf notwendig. Zu diesem Zweck gibt
  1106.  
  1107.                 es die Variable 'counter'. Ihre Belegung
  1108.  
  1109.                 und Verwendung unterliegt dem vollständigen
  1110.  
  1111.                 Einfluß durch den Benutzer.
  1112.  
  1113.                 Der Befehl 'counter' gibt den Wert dieser
  1114.  
  1115.                 Variablen wieder.
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121. setcounter <zahl>        Setzt 'counter' auf den Wert <zahl>.
  1122.  
  1123.                 Bsp.: setcounter 20
  1124.  
  1125.                 counter := 20;
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131. inccounter            erhöht 'counter' um eins.
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137. deccounter            erniedrigt 'counter' um eins
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143. ?counter= <zahl> <label>    wenn 'counter' = <zahl> gehe zu <label>.
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149. ?counter< <zahl> <label>    wenn 'counter' < <zahl> gehe zu <label>.
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155. ?counter> <zahl> <label>    wenn 'counter' > <zahl> gehe zu <label>.
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161. ?counter# <zahl> <label>    wenn 'counter' <> <zahl> gehe zu <label>.
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167. counter+ <zahl>         counter := counter + <zahl>
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173. counter- <zahl>         counter := counter - <zahl>
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179. counter* <zahl>         counter := counter * <zahl>
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187. Es soll angemerkt werden, daß 'status' eine 32-Bit-Integer Zahl ist. Bei
  1188.  
  1189. 'counter' handelt es sich um einen 16-Bit-Integerwert.
  1190.  
  1191. Tritt in einem Batchfile ein Syntaxfehler auf, wird die Abarbeitung abge-
  1192.  
  1193. brochen (nicht bei Benutung von 'errorbreak')!
  1194.  
  1195. Befindet sich im AUTO-Ordner die Batch-Datei 'batch.com', so wird diese von
  1196.  
  1197. 'command.prg' während dem Programmstart ausgeführt. Damit hat man z.B. die
  1198.  
  1199. Möglichkeit, bestimmte Files auf eine RAMDisk zu kopieren oder Funktions-
  1200.  
  1201. tasten vorzubelegen.
  1202.  
  1203.  
  1204.  
  1205. Beispiele:
  1206.  
  1207.   
  1208.  
  1209.  Bsp. 1:
  1210.  
  1211.  
  1212.  
  1213.     ;
  1214.  
  1215.     ; Batchfile zur Compilierung und zum Linken eines C-Files
  1216.  
  1217.     ;
  1218.  
  1219.     cc $0.c     ; Aufruf des Compilers
  1220.  
  1221.     <> 0        ; Abbruch wenn Fehler aufgetreten
  1222.  
  1223.     link $0.o -o $1    ; Linken des Objektfiles
  1224.  
  1225.     <> 0        ; Abbruch wenn Fehler aufgetreten
  1226.  
  1227.     rm $0.o        ; Löschen des Objektfiles
  1228.  
  1229.  
  1230.  
  1231.   Im vorliegenden Beispiel wird ein C-Sourcefile mit Hilfe eines Batchfiles
  1232.  
  1233.   compiliert und gelinkt.
  1234.  
  1235.   Die ersten drei Zeilen dienen lediglich der Dokumentierung (Kommentar-
  1236.  
  1237.   zeilen). In Zeile 4 wird der C-Compiler aufgerufen. '$0' repräsentiert
  1238.  
  1239.   den Namen des Sourcefiles (Eingabe ohne Extension!). Es wird davon aus-
  1240.  
  1241.   gegangen, daß der Compiler im Falle eines korrekten Durchlaufs eine
  1242.  
  1243.   Null zurückgibt. Andernfalls sorgt Zeile 5 für einen Abbruch der Batch-
  1244.  
  1245.   Bearbeitung. Nach dem Compilieren soll der entstandene Objektfile gelinkt
  1246.  
  1247.   werden. Dies wird durch die Anweisung in Zeile 6 bewerkstelligt.
  1248.  
  1249.   '$0' ist wieder der Programmname, diesmal mit Extension '.o', $1 soll den
  1250.  
  1251.   Namen des lauffähigen Programms darstellen (diesmal muß eine Extension 
  1252.  
  1253.   angegeben werden). Im Fehlerfall sorgt Zeile 7 für einen Abbruch der
  1254.  
  1255.   Bearbeitung. Ist alles in Ordnung wird durch Zeile 8 noch der Objekt-
  1256.  
  1257.   file gelöscht.
  1258.  
  1259.   Angenommen der Batchfile heißt 'cc.com', so sorgt zum Beispiel das
  1260.  
  1261.   Kommando '@cc test run.prg' für eine Compilierung des Files 'test.c'.
  1262.  
  1263.   Der lauffähige File wird unter 'run.prg' abgelegt.
  1264.  
  1265.   Man kann hier sehr gut die Vorteile der Platzhalter ($) erkennen.
  1266.  
  1267.   Unterschiedliche C-Files können mit einem Batch-File bearbeitet werden.
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  Bsp. 2:
  1274.  
  1275.  
  1276.  
  1277.   Dieses Beispiel ist für alle Benutzer des Assemblers aus dem Entwicklungs-
  1278.  
  1279.   paket interessant. Es zeigt, wie man Batchfiles abbrechen kann, auch wenn
  1280.  
  1281.   das aufgerufene Programm keine Fehlercodes zurückgibt.
  1282.  
  1283.  
  1284.  
  1285.     size0 $0.s exit        ; Sourcefile muß da sein
  1286.  
  1287.     as68.ttp -l -u $0.s    ; Assemblierung
  1288.  
  1289.     size0 $0.o linker    ; wenn kein '.o'-File vorhanden raus
  1290.  
  1291.     link68.ttp [u] $0.68k = $0.o ; Linken
  1292.  
  1293.     size0 $0.68k exit    ; wenn kein '.68k'-File vorhanden raus
  1294.  
  1295.     relmod.ttp $0.68k $0.$1    ; lauffähigen File erstellen
  1296.  
  1297.     rm $0.68k *.o        ; '.o' und '.68k' Files löschen
  1298.  
  1299.     lbl exit
  1300.  
  1301.  
  1302.  
  1303.   Dieser Batchfile arbeitet wieder mit zwei Argumenten ($0 und $1). $0 re-
  1304.  
  1305.   präsentiert wieder den Filenamen (ohne Extension), $1 die Extension des
  1306.  
  1307.   lauffähigen Files. Heißt der Batchfile 'as' könnte eine Assemblierung
  1308.  
  1309.   z.B. so aussehen: 
  1310.  
  1311.             '@as test tos',
  1312.  
  1313.   d.h. File 'test.s' soll in 'test.tos' resultieren.
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321. Variablen
  1322.  
  1323. ---------
  1324.  
  1325.  
  1326.  
  1327. Eine große Neuerung ab Version 1.02 stellt die Einführung von Variablen dar.
  1328.  
  1329. Der Benutzer hat nun die Möglichkeit, beliebige Variablen zu definieren und
  1330.  
  1331. einfache Rechnungen mit ihnen durchzuführen. Dies kann in Batch-Files zum
  1332.  
  1333. Aufbau von Schleifen benutzt werden.
  1334.  
  1335.  
  1336.  
  1337. Die Befehle im Einzelnen:
  1338.  
  1339.  
  1340.  
  1341. let <var>✓£ÄSüנõנä0¨`y9╱Dג⇦⇦gij@gαijG⇩`x88y999B⇨α`gijגτijG⇦⇧ijג⇩gπ#ππ°88y999⇩⇦ij@τגIJ⇦'ijG⇩A◆╱@ג'ΣG⇦⇧ijג⇩d'ו⇦gπ#ππ°88x88x88A⇦gαijG⇩`gα'ταijG⇩gijτijG⇧ijαgαijו╱Dαx88A⇦gαijG⇩`gααgαijG⇩gijτijG⇧ijαgαijו╱Dαx88A⇦gαijG⇩`gαgταijG⇩gijτijG⇧ijαgαijו╱Dαx88A⇦gαijG⇩`gατταijG⇩gijτijG⇧ijαgαijו╱Dαx88y999@⇩gIJgמGה⇧α Aג⇩'ij@'חIJ`'ijDτחג⇩B⇨אAD⇦x88y999⇦⇦⇦⇧⇦Dαx88y999B⇨α`x88y9999⇧⇦gו'α'π#τij◆⇩@⇦#888y999⇦@gו'α'π#ατא⇨אAD⇦'ij@'Σ◆⇩@⇦#$888y999B⇨α`x8
  1342.                     if xy <> ab ende
  1343.  
  1344.                 wenn 'xy' ungleich 'ab', springe zu 'ende'
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350. -- <var1> <var2> .. <varN>    dekrementieren von Variablen um eins.
  1351.  
  1352.                 Bsp.: -- zaehler xy ab
  1353.  
  1354.                 dekrementiert die angegebenen Variablen um
  1355.  
  1356.                 eins
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362. ++ <var1> <var2> .. <varN>    inkrementieren von Variablen um eins.
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368. -= <varA> <var | zahl>        erniedrigen von <varA> um <zahl | var >
  1369.  
  1370.                 Bsp.: -= ab 10
  1371.  
  1372.                 zieht von 'ab' 10 ab
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378. += <varA> <var | zahl>        analog zu -=, nur erhöhen.
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384. 2* <var1> <var2> .. <varN>    verdoppeln von Variablenwerten.
  1385.  
  1386.                 Bsp.: 2* zaehler
  1387.  
  1388.                 zaehler := 2 * zaehler
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394. 2/ <var1> <var2> .. <varN>    halbieren von Variablenwerten.
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400. *= <varA> <var | zahl>        multiplizieren von <varA> mit <var | zahl>
  1401.  
  1402.                 Bsp.: *= ab xy
  1403.  
  1404.                 ab := ab * xy
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410. /= <varA> <var | zahl>        analog zu *=, nur Division.
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416. print <var1> <var2> .. <varN>    ausgeben der Variableninhalte.
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422. clear                alle Variablen auf Null setzen.
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428. vardump                Ausgabe aller Variablen mit Belegungen.
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434. Die Werte der Variablen sind vom Typ 'long' (integer).
  1435.  
  1436. Neue Variablen können nicht nur durch den 'let'-Befehl eingeführt werden.
  1437.  
  1438. Jeder Bezug auf eine Variable, die noch nicht existiert, erzeugt einen
  1439.  
  1440. Variableneintrag und setzt den Wert auf Null!
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448. Zum Schluß möchte ich noch auf die Anfälligkeit bezüglich Bomben eingehen.
  1449.  
  1450. Im normalen Betrieb ist das Programm (hoffentlich) absturzsicher. Es ist
  1451.  
  1452. allerdings möglich, die ach so beliebten Bomben auf den Bildschirm zu
  1453.  
  1454. zaubern. Wie das geht soll jeder selbst rausfinden.
  1455.  
  1456. Die eigentliche Stärke des Interpreters kommt bei der Benutzung einer Hard-
  1457.  
  1458. disk zum Vorschein, es läßt sich damit wesentlich effektiver arbeiten als
  1459.  
  1460. mit der Maus oder den diversen Shells, die so durch die Computerwelt
  1461.  
  1462. geistern. Nur absolute Mausfetischisten dürften auf die Vorzüge eines
  1463.  
  1464. solchen Kommandointerpreters verzichten wollen, schneller ist die Bedienung
  1465.  
  1466. des Rechners mit solchen Programmen auf jeden Fall.
  1467.  
  1468. Es gibt Programme, die sich mit diesem Interpreter, aus was für Gründen auch
  1469.  
  1470. immer, nicht vertragen. Eins davon ist (leider) der GFA-BASIC-Interpreter.
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476. Der Kommando-Interpreter kann frei kopiert werden. Es bestehen keinerlei
  1477.  
  1478. Copyright-Ansprüche. Für Anregungen, Fehlermeldungen oder unbedingt notwendige
  1479.  
  1480. Erweiterungen bin ich immer dankbar. Diese können an folgende Adresse ge-
  1481.  
  1482. schickt werden:
  1483.  
  1484.  
  1485.  
  1486.             Joachim Wolf
  1487.  
  1488.             Hügelheimerstr. 15
  1489.  
  1490.               7840 Müllheim / Baden
  1491.  
  1492.  
  1493.  
  1494. Da ich meistens nur am Wochende einige Zeit mit dem ATARI zubringe, möchte
  1495.  
  1496. ich darum bitten, daß keine Kopierwünsche o.ä. an mich herangetragen werden,
  1497.  
  1498. ich könnte sonst nur noch weniger Zeit mit der Suche nach Fehlern zubringen!
  1499.  
  1500.